home *** CD-ROM | disk | FTP | other *** search
/ Wild West Interactive / Wild West Interactive - Disc 1.iso / setup.mst < prev    next >
Text File  |  1995-04-12  |  14KB  |  404 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST OPTIONS       = 800
  16. CONST OPTIONS2      = 900
  17. CONST SMALLWIN      = 2200
  18. CONST RESTART       = 2600
  19. CONST RESTARTII     = 2700
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL SizeReq&  '' Total Disk Size required for installation
  26.  
  27. ''File Types
  28. GLOBAL WinDir$
  29. GLOBAL WinSysDir$
  30. GLOBAL WinSys32Dir$
  31. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  32. GLOBAL CHECKSTATES$
  33. GLOBAL MinorVer%
  34. GLOBAL OnNT$
  35.  
  36. GLOBAL OPTCUR$        ''Option selection from option dialog.
  37. GLOBAL OPT2CUR$        ''Option selection from option dialog 2.
  38. GLOBAL ini$
  39. GLOBAL DEST$        ''Default destination directory.
  40.  
  41. DECLARE SUB Install
  42. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  43. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  44. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  45. DECLARE SUB Reboot LIB "iniupd.dll"
  46. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  47.  
  48. INIT:
  49.   
  50.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  51.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  52.     
  53.     WIN32ENABLED% = 0
  54.     MajorVer% = GetWindowsMajorVersion()
  55.     MinorVer% = GetWindowsMinorVersion()
  56.     Processor% = GetProcessorType()
  57.     WinDir$ = GetWindowsDir()
  58.     WinSysDir$ = GetWindowsSysDir()
  59.     WinSys32Dir$ = WinDir$ + "system32"
  60.  
  61.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  62.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  63.     END
  64.     END IF
  65.  
  66.     'Prevents installation on 286
  67.     IF Processor% < 3 THEN
  68.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  69.     END
  70.     END IF
  71.  
  72.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  73.     IF OnWindowsNT() THEN
  74.       OnNT$ = "TRUE"
  75.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  76.       IF WowVersion$ = "" THEN
  77.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  78.          END
  79.       END IF
  80.     END IF
  81.  
  82.     SetBitmap CUIDLL$, LOGO
  83.     SetTitle "The Wild West"
  84.  
  85.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  86.     IF szInf$ = "" THEN
  87.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  88.     END IF
  89.     ReadInfFile szInf$
  90.  
  91.     OPTCUR$ = "1"
  92.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  93.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  94.     DEST$ = WINDRIVE$ + ":\WILDWEST"
  95.  
  96. WELCOME:
  97.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  98.     IF sz$ = "CONTINUE" THEN
  99.        UIPop 1
  100.      ELSE
  101.     GOSUB ASKQUIT
  102.     GOTO WELCOME
  103.     END IF
  104.  
  105. '' Select educator install or home user
  106.  
  107. OPTION:
  108.     SetSymbolValue "RadioDefault", OPTCUR$
  109. OPTL1:
  110.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  111.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  112.  
  113.     IF sz$ = "CONTINUE" THEN
  114.         UIPop(1)
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.         GOTO OPTL1
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO OPTION
  120.     END IF
  121.  
  122. OPTION2:
  123.     SetSymbolValue "RadioDefault", OPT2CUR$
  124. OPTL2:
  125.     sz$ = UIStartDlg(CUIDLL$, OPTIONS2, "FRadioDlgProc", 0, "")
  126.     OPT2CUR$ = GetSymbolValue("ButtonChecked")
  127.  
  128.     IF sz$ = "CONTINUE" THEN
  129.         UIPop(1)
  130.     ELSEIF sz$ = "REACTIVATE" THEN
  131.         GOTO OPTL2
  132.     ELSE
  133.         GOSUB ASKQUIT
  134.         GOTO OPTION2
  135.     END IF
  136.  
  137. '' Get the path to install the Wild West application to
  138.  
  139. GETPATH:
  140.     SetSymbolValue "EditTextIn", DEST$
  141.     SetSymbolValue "EditFocus", "END"
  142. GETPATHL1:
  143.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  144.     DEST$ = GetSymbolValue("EditTextOut")
  145.  
  146.     IF sz$ = "CONTINUE" THEN
  147.         IF IsDirWritable(DEST$) = 0 THEN
  148.             GOSUB BADPATH
  149.             GOTO GETPATHL1
  150.         ENDIF
  151.         UIPop 1
  152.     ELSEIF sz$ = "REACTIVATE" THEN
  153.         GOTO GETPATHL1
  154.     ELSEIF sz$ = "BACK" THEN
  155.         UIPop 1
  156.         GOTO OPTION2
  157.     ELSE
  158.         GOSUB ASKQUIT
  159.         GOTO GETPATH
  160.     END IF
  161.  
  162. ''Prepare Copy list and check size
  163.  
  164.     ClearCopyList
  165.  
  166. ''  Runtime files (on Windows disk)
  167.  
  168.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  169.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  170.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  171.     END IF
  172.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  173.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  174.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  175.     IF OnNT$ = "TRUE" THEN
  176.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  177.     ENDIF
  178.     AddSectionFilesToCopyList "Wild West Exe", SrcDir$, DEST$
  179.     IF OPT2CUR$ = "1" THEN
  180.     AddSectionFilesToCopyList "Wild West Files", SrcDir$, DEST$
  181.     END IF
  182.  
  183. ''*************************************************************************************************************************
  184. ''*************************************************************************************************************************
  185. ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList,
  186. ''and add a "DCI Provider" section with to the SETUP.INF file.
  187. ''
  188. ''    AddSectionFilesToCopyList "DCI Provider", SrcDir$, WinSysDir$
  189. ''*************************************************************************************************************************
  190. ''*************************************************************************************************************************
  191.  
  192. ''  Check windrive diskspace
  193.  
  194.     SizeReq& = GetCopyListCost ("","", "")
  195.     IF SizeReq& <> 0 THEN
  196.     GOSUB SMALLWIN
  197.     END
  198.     END IF
  199.  
  200.     Install
  201.  
  202. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  203. '' else, it gives the user the choice
  204.     RESTRT% = RestartListEmpty ()
  205.     Exe$ = DEST$ + "\_msrstrt.exe"
  206.     Batch$ = DEST$ + "\_mssetup.bat"
  207.     empty$ = ""
  208. RESTART:
  209.     IF RESTRT% = 0 THEN
  210.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  211.        IF sz$ = "REACTIVATE" THEN
  212.       GOTO RESTART
  213.        ENDIF
  214.        I% = ExitExecRestart ()
  215.        RemoveFile Exe$, cmoForce
  216.        RemoveFile Batch$, cmoForce
  217.        END
  218.     ELSE
  219.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  220.        IF sz$ = "CONTINUE" THEN
  221.       I% = ExitWindowsExec (Exe$, empty$)
  222.       IF I% = 0 THEN
  223.          GOTO RESTART
  224.       ELSE
  225.          END
  226.      ENDIF
  227.        ELSEIF sz$ = "EXIT" THEN
  228.       UIPopAll
  229.       END
  230.        ELSEIF sz$ = "REACTIVATE" THEN
  231.       GOTO RESTART
  232.        ELSE
  233.       UIPop 1
  234.        END IF
  235.     END IF
  236.  
  237.  
  238. QUIT:
  239.     ON ERROR GOTO ERRQUIT
  240.  
  241.     IF ERR = 0 THEN
  242.     dlg% = EXITSUCCESS
  243.     ELSEIF ERR = STFQUIT THEN
  244.     dlg% = EXITQUIT
  245.     ELSE
  246.     dlg% = EXITFAILURE
  247.     END IF
  248. QUITL1:
  249.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  250.     IF sz$ = "REACTIVATE" THEN
  251.     GOTO QUITL1
  252.     END IF
  253.     UIPop 1
  254.     END
  255.  
  256. ERRQUIT:
  257.     i% = DoMsgBox("An installation problem occured, call Jasmine Multimedia Tech Support!", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  258.     END
  259.  
  260. BADPATH:
  261.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  262.     IF sz$ = "REACTIVATE" THEN
  263.         GOTO BADPATH
  264.     END IF
  265.     UIPop 1
  266.     RETURN
  267.  
  268. ASKQUIT:
  269.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  270.  
  271.     IF sz$ = "EXIT" THEN
  272.     UIPopAll
  273. ''        ERROR STFQUIT
  274.     END
  275.     ELSEIF sz$ = "REACTIVATE" THEN
  276.     GOTO ASKQUIT
  277.     ELSE
  278.     UIPop 1
  279.     END IF
  280.     RETURN
  281.  
  282. SMALLWIN:
  283.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  284.     IF sz$ = "REACTIVATE" THEN
  285.     GOTO SMALLWIN
  286.     END IF
  287.     UIPop 1
  288.     RETURN
  289.  
  290. '**
  291. '** Purpose:
  292. '**     Performs all installation operations.
  293. '** Arguments:
  294. '**     none.
  295. '** Returns:
  296. '**     none.
  297. '*************************************************************************
  298. SUB Install STATIC
  299.  
  300.     SetRestartDir WinDir$
  301.     CopyFilesInCopyList
  302.  
  303. ''Updating WIN.INI and SYSTEM.INI
  304. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  305.  
  306. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  307.     IF VflatdPresent() = 0 THEN
  308.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  309.     END IF
  310. END IF
  311.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  312.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  313.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  314.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  315.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  316.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  317.     IF I% = 0  THEN
  318.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  319.     END IF
  320.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  321.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  322.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  323.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  324.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  325.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  326.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  327.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  328.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  329.  
  330. '' Add WIN.INI entry for Educator Copy dialog box, if selected
  331.  
  332.     IF OPTCUR$ = "1" THEN
  333.         CreateIniKeyValue WinDir$ + "WIN.INI", "Wild West", "Educator Save", "1", cmoOverwrite
  334.     ELSE
  335.         CreateIniKeyValue WinDir$ + "WIN.INI", "Wild West", "Educator Save", "0", cmoOverwrite
  336.     END IF
  337.  
  338. '' Add WIN.INI entry for hard disk file location, if selected
  339.  
  340.     IF OPT2CUR$ = "1" THEN
  341.         CreateIniKeyValue WinDir$ + "WIN.INI", "Wild West", "WWFiles", DEST$, cmoOverwrite
  342.     ELSE
  343.         CreateIniKeyValue WinDir$ + "WIN.INI", "Wild West", "WWFiles", "", cmoOverwrite
  344.     END IF
  345.  
  346. ''*************************************************************************************************************************
  347. ''*************************************************************************************************************************
  348. ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the    <provider> with your own file name
  349. ''
  350. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite
  351. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite
  352. ''*************************************************************************************************************************
  353. ''*************************************************************************************************************************
  354.  
  355. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  356. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  357.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  358.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  359.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  360.  
  361. '' Mplayer
  362.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  363.  
  364. END IF    ''NT and next version of Windows installation stop here.
  365.  
  366. '' The Wild West
  367.     CreateProgmanGroup "The Wild West", "", cmoOverwrite
  368.     ShowProgmanGroup  "The Wild West", 1, cmoOverwrite
  369.     ini$ = GetSymbolValue("STF_SRCDIR")
  370.     IF MID$(ini$, LEN(ini$), 1) = ":" THEN
  371.     ini$ = ini$ + "\"
  372.     END IF
  373.     CreateProgmanItem "The Wild West", "The Wild West", MakePath(DEST$, "wildwest.exe"), ",,,,"+ini$, cmoOverwrite
  374.     CreateProgmanItem "The Wild West", "Now Available", MakePath(ini$, "catalog.exe"), "", cmoOverwrite
  375.  
  376. '' INI entries for morph application
  377. ''    CreateIniKeyValue WinDir$ + "MMOVIES.INI", "Dir Locations", "MORPH", DEST$, cmoOverwrite
  378.  
  379.     Run ("profdisp.exe")   
  380. END SUB
  381.  
  382. '**
  383. '** Purpose:
  384. '**     Appends a file name to the end of a directory path,
  385. '**     inserting a backslash character as needed.
  386. '** Arguments:
  387. '**     szDir$  - full directory path (with optional ending "\")
  388. '**     szFile$ - filename to append to directory
  389. '** Returns:
  390. '**     Resulting fully qualified path name.
  391. '*************************************************************************
  392. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  393.     IF szDir$ = "" THEN
  394.     MakePath = szFile$
  395.     ELSEIF szFile$ = "" THEN
  396.     MakePath = szDir$
  397.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  398.     MakePath = szDir$ + szFile$
  399.     ELSE
  400.     MakePath = szDir$ + "\" + szFile$
  401.     END IF
  402. END FUNCTION
  403.  
  404.